package com.wondertek.poms.setting.vo;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.wondertek.poms.common.utils.validate.GroupType;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
import java.io.Serializable;

/**
 * <p><b>SysDictTypeVo Description:</b> SysDictTypeVo类  对应 sys_dict_type-字典类型表 表</p>
 *
 * @author wzq
 * <p><b>DATE</b> 2019-08-13 11:02:01</p>
 */
@Data
public class SysDictTypeVo implements Serializable {

    private static final long serialVersionUID = -5927917273926411518L;
    /**
     * <b>Fields</b> id : 字典类型id
     */
    @NotNull(message = "id不能为空", groups = {GroupType.Update.class})
    private Long id;

    /**
     * <b>Fields</b> name : 字典名称
     */
    @NotBlank(message = "字典名称不能为空", groups = {Default.class, GroupType.Update.class})
    @Length(message = "字典名称长度不能超过80个字节", max = 80, groups = {Default.class, GroupType.Update.class})
    private String name;

    /**
     * <b>Fields</b> type : 字典类型
     */
    @NotBlank(message = "字典类型不能为空", groups = {Default.class, GroupType.Update.class})
    @Length(message = "字典类型长度不能超过80个字节", max = 80, groups = {Default.class, GroupType.Update.class})
    private String type;


    /**
     * <b>Fields</b> createdBy : 创建者
     */
    @Length(message = "创建者长度不能超过64个字节", max = 64, groups = {Default.class, GroupType.Update.class})
    private String createdBy;

    /**
     * <b>Fields</b> createdTime : 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.time.LocalDateTime createdTime;

    /**
     * <b>Fields</b> updatedBy : 更新者
     */
    @Length(message = "更新者长度不能超过64个字节", max = 64, groups = {Default.class, GroupType.Update.class})
    private String updatedBy;

    /**
     * <b>Fields</b> updatedTime : 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.time.LocalDateTime updatedTime;

    /**
     * <b>Fields</b> remarks : 备注信息
     */
    @Length(message = "备注信息长度不能超过150个字节", max = 150, groups = {Default.class, GroupType.Update.class})
    private String remarks;

    /**
     * <b>Fields</b> status : 状态（0正常 1删除 2停用）
     */
    private Integer deleted = 0;
}